package com.alpha.eceasy.extension;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

public interface BaseService<T> extends MPJBaseService<T> {
    /**
     * 根据 guid 查询
     *
     * @param guid guid
     */
    T getByGuid(Serializable guid);

    /**
     * 查询（根据guid 批量查询）
     *
     * @param guidList guid列表
     */
    default List<T> listByGuids(Collection<? extends Serializable> guidList) {
        return guidList.stream().map(this::getByGuid).toList();
    }

    /**
     * 根据 guid 选择修改
     *
     * @param entity 实体对象
     */
    boolean updateByGuid(T entity);

    /**
     * 根据 guid 删除
     *
     * @param guid guid
     */
    boolean removeByGuid(Serializable guid);
}
